﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ITCR.ProyectoAgricola.Datos;
using ITCR.ProyectoAgricola.Base;
using ITCR.ProyectoAgricola.Negocios;
using System.Threading;
using System.Data;
using System.Data.SqlTypes;
using System.Data.SqlClient;



namespace ITCR.ProyectoAgricola.Interfaz
{
    public partial class formularioEmpresaPerfil : System.Web.UI.Page
    {
        //Variables de registro
        public string vNombreRegistro;
        public string vPasswordRegistro;
        public string vPasswordConfirmacion;
        public bool flagCorrecto;


        //variables de error en el ingreso de datos textuales, campos Nombre de la Empresa, dias de entrega, otro en el perfil
        bool vNombreEmpresaError = false;
        bool vDiasEntregaError = false;
        bool vOtroPerfilError = false;

        //Variables log in
        string vUsuario;
        string vContraseña;

        //Variables datos empresa
        string vConsecutivo;
        string vEmpresa;
        string vDireccion;
        string vTelefono;
        string vFax;
        string vCorreoElectronico;
        string vPaginaWeb;
        string vGerente;
        string vTecnico;
        //Variables perfil empresa
        int vCheckBodegasCentrales = 0;
        int vCheckCatalogoProductos = 0;
        int vCheckDistribuidoresAutorizados = 0;
        int vCheckFuerzaVentas = 0;
        int vCheckInventario = 0;
        string vTextDiasEntrega;
        int vCheckProfesionalesInscritos = 0;
        int vCheckImportadorDirecto = 0;
        int vCheckRepresentanteDirecto = 0;
        int vCheckServiciosEspecificos = 0;
        int vCheckSoloDistribuidor = 0;
        int vCheckSubcontrataServicios = 0;
        int vCheckOtro = 0;
        string vTextOtro;


        public string valorIdConsecutivo;
        public string valorUsuario;
        public string valorIdEmpresa;


        protected void Page_Load(object sender, EventArgs e)
        {
            //valorIdConsecutivo = Convert.ToString(Request.QueryString["idConsecutivo"]);
            //Session["consecutivoSesion"] = valorIdConsecutivo;
            //valorUsuario = Convert.ToString(Request.QueryString["userName"]);
            valorIdConsecutivo = (string)Session["consecutivoSesion"];            
            valorUsuario = (string)Session["userName"];

            //Response.Write("<script>alert('Consecutivo " + valorIdConsecutivo + "'); </script>");

            cEMPRESABase todasEmpresas = new cEMPRESABase();
            DataTable tablaEmpresas = new DataTable();
            tablaEmpresas = todasEmpresas.SeleccionarTodos();
            string codigoConsecutivo = "CE-" + valorIdConsecutivo;

            for (int i = 0; i < tablaEmpresas.Rows.Count; i++)
            {
                if (tablaEmpresas.Rows[i][1].Equals(codigoConsecutivo))
                {
                    valorIdEmpresa = tablaEmpresas.Rows[i][0].ToString();
                }
            }

                if (!IsPostBack)
                {
                    if ((bool)Session["banderaEmpresa"] == true)
                    {
                        //int idEmpresa = (int)Session["idEmpresaRegistrada"];
                        int idEmpresa = int.Parse(valorIdEmpresa);

                        LabelNombreUsuarioFormulario.Text = valorUsuario;

                        cEMPRESABase cargarEmpresaExistente = new cEMPRESABase();
                        cargarEmpresaExistente.IdEmpresa = idEmpresa;
                        cargarEmpresaExistente.SeleccionarUno();

                        TextConsecutivo.Text = cargarEmpresaExistente.Consecutivo.ToString();
                        TextNombreEmpresa.Text = cargarEmpresaExistente.NombreEmpresa.ToString();
                        TextAreaDireccion.Text = cargarEmpresaExistente.Direccion.ToString();
                        TextTelefono.Text = cargarEmpresaExistente.TelefonoOficina.ToString();
                        TextFax.Text = cargarEmpresaExistente.TelefonoFax.ToString();
                        TextCorreoElectronico.Text = cargarEmpresaExistente.CorreoElectronico.ToString();
                        TextPaginaWeb.Text = cargarEmpresaExistente.PaginaWeb.ToString();
                        TextGerente.Text = cargarEmpresaExistente.NombreGerente.ToString();
                        TextTecnico.Text = cargarEmpresaExistente.NombreTecnico.ToString();

                        cPERFILBase cargarPerfilExistente = new cPERFILBase();
                        cargarPerfilExistente.IdEmpresa = idEmpresa;
                        cargarPerfilExistente.SeleccionarUno();

                        //Bodegas centrales
                        if (cargarPerfilExistente.BodegasCentrales == 1)
                        {
                            CheckboxBodegasCentrales.Checked = true;
                        }
                        else { CheckboxBodegasCentrales.Checked = false; }
                        //Catalogo Productos
                        if (cargarPerfilExistente.CatalogoProductos == 1)
                        {
                            CheckboxCatalogoProductos.Checked = true;
                        }
                        else { CheckboxCatalogoProductos.Checked = false; }
                        //Distribuidor Autorizado
                        if (cargarPerfilExistente.DistribuidorAutorizados == 1)
                        {
                            CheckboxDistribuidoresAutorizados.Checked = true;
                        }
                        else { CheckboxDistribuidoresAutorizados.Checked = false; }
                        //Fuerza de ventas
                        if (cargarPerfilExistente.FuerzaVentas == 1)
                        {
                            CheckboxFuerzaVentas.Checked = true;
                        }
                        else { CheckboxFuerzaVentas.Checked = false; }
                        //Inventario
                        if (cargarPerfilExistente.InventarioDisponible == 1)
                        {
                            CheckboxInventario.Checked = true;
                            TextDiasEntrega.Text = cargarPerfilExistente.DiasInventario.ToString();
                        }
                        else { CheckboxInventario.Checked = false; }
                        //Profesionales Inscritos
                        if (cargarPerfilExistente.ProfesionalesInscritos == 1)
                        {
                            CheckboxProfesionalesInscritos.Checked = true;
                        }
                        else { CheckboxProfesionalesInscritos.Checked = false; }
                        //Importador Directo
                        if (cargarPerfilExistente.ImportadorDirecto == 1)
                        {
                            CheckboxImportadorDirecto.Checked = true;
                        }
                        else { CheckboxImportadorDirecto.Checked = false; }
                        //Representante Directo
                        if (cargarPerfilExistente.RepresentanteDirecto == 1)
                        {
                            CheckboxRepresentanteDirecto.Checked = true;
                        }
                        else { CheckboxRepresentanteDirecto.Checked = false; }
                        //Servicios Especificos
                        if (cargarPerfilExistente.ServiciosEspecificos == 1)
                        {
                            CheckboxServiciosEspecificos.Checked = true;
                        }
                        else { CheckboxServiciosEspecificos.Checked = false; }
                        //Solo Distribuidor
                        if (cargarPerfilExistente.SoloDistribuidor == 1)
                        {
                            CheckboxSoloDistribuidor.Checked = true;
                        }
                        else { CheckboxSoloDistribuidor.Checked = false; }
                        //Subcontrata Servicios
                        if (cargarPerfilExistente.SubcontrataServicios == 1)
                        {
                            CheckboxSubcontrataServicios.Checked = true;
                        }
                        else { CheckboxSubcontrataServicios.Checked = false; }
                        //Otro
                        if (cargarPerfilExistente.Otro.ToString() != "0")
                        {
                            CheckboxOtro.Checked = true;
                            TextOtro.Text = cargarPerfilExistente.Otro.ToString();
                        }
                        else { CheckboxOtro.Checked = false; }
                    }
                    else
                    {
                        valorIdConsecutivo = (string)Session["consecutivoSesion"];
                        TextConsecutivo.Text = "CE-" + valorIdConsecutivo;
                        LabelNombreUsuarioFormulario.Text = valorUsuario;

                        cEMPRESABase empresas = new cEMPRESABase();
                        DataTable dataTableEmpresas = new DataTable();

                        for (int i = 0; i < dataTableEmpresas.Rows.Count; i++)
                        {
                            if (dataTableEmpresas.Rows[i][1].Equals(valorIdConsecutivo))
                            {
                                valorIdEmpresa = dataTableEmpresas.Rows[i][0].ToString();
                            }
                        }
                    }
                }

            //Session["idEmpresaRegistrada"] = valorIdEmpresa;
        }

        public void ButtonEnviarPefil_Click(Object sender, EventArgs e)
        {
            guardarActualizarInformacion();
            Response.RedirectPermanent("formularioProyectos.aspx");
        }
      

        protected void ButtonCatalogoP_Click(object sender, EventArgs e)
        {
            guardarActualizarInformacion();
            Response.RedirectPermanent("catalogoInicio.aspx");
        }

        protected void ButtonHome_Click(object sender, EventArgs e)
        {
            guardarActualizarInformacion();
            Response.RedirectPermanent("Default.aspx");
        }

        
        protected void guardarActualizarInformacion()
        {
            //Asignacion Variables para los datos de la empresa
            vConsecutivo = TextConsecutivo.Text.ToString();
            vDireccion = TextAreaDireccion.Text.ToString();
            vTelefono = TextTelefono.Text.ToString();
            vFax = TextFax.Text.ToString();
            vCorreoElectronico = TextCorreoElectronico.Text.ToString();
            vPaginaWeb = TextPaginaWeb.Text.ToString();
            vGerente = TextGerente.Text.ToString();
            vTecnico = TextTecnico.Text.ToString();

            //Asignacion Variables para el perfil de la empresa
            if (CheckboxBodegasCentrales.Checked == true)
            {
                vCheckBodegasCentrales = 1;
            }
            else { vCheckBodegasCentrales = 0; }

            if (CheckboxCatalogoProductos.Checked == true)
            {
                vCheckCatalogoProductos = 1;
            }
            else { vCheckCatalogoProductos = 0; }

            if (CheckboxDistribuidoresAutorizados.Checked == true)
            {
                vCheckDistribuidoresAutorizados = 1;
            }
            else { vCheckDistribuidoresAutorizados = 0; }

            if (CheckboxFuerzaVentas.Checked == true)
            {
                vCheckFuerzaVentas = 1;
            }
            else { vCheckFuerzaVentas = 0; }

            if (CheckboxInventario.Checked == true)
            {
                vCheckInventario = 1;
                if (TextDiasEntrega.Text == " ")
                {
                    Response.Write("<script>alert('Debe ingresar el número de Días de Entrega');</script>");
                    vDiasEntregaError = true;
                }
                else
                {
                    vTextDiasEntrega = TextDiasEntrega.Text;
                }
            }
            else
            {
                if (TextDiasEntrega.Text != " ")
                {
                    vTextDiasEntrega = TextDiasEntrega.Text;
                }
                else
                { vCheckInventario = 0; }
            }

            if (CheckboxProfesionalesInscritos.Checked == true)
            {
                vCheckProfesionalesInscritos = 1;
            }
            else { vCheckProfesionalesInscritos = 0; }

            if (CheckboxImportadorDirecto.Checked == true)
            {
                vCheckImportadorDirecto = 1;
            }
            else { vCheckImportadorDirecto = 0; }

            if (CheckboxRepresentanteDirecto.Checked == true)
            {
                vCheckRepresentanteDirecto = 1;
            }
            else { vCheckRepresentanteDirecto = 0; }

            if (CheckboxServiciosEspecificos.Checked == true)
            {
                vCheckServiciosEspecificos = 1;
            }
            else { vCheckServiciosEspecificos = 0; }

            if (CheckboxSoloDistribuidor.Checked == true)
            {
                vCheckSoloDistribuidor = 1;
            }
            else { vCheckSoloDistribuidor = 0; }

            if (CheckboxSubcontrataServicios.Checked == true)
            {
                vCheckSubcontrataServicios = 1;
            }
            else { vCheckSubcontrataServicios = 0; }

            if (CheckboxOtro.Checked == true)
            {

                vCheckOtro = 1;
                if (TextOtro.Text.Equals(" "))
                {
                    vOtroPerfilError = true;
                    Response.Write("<script>alert('Especifique el dato para la opción Otro en el Perfil');</script>");
                }
                else { vTextOtro = TextOtro.Text.ToString(); }
            }
            else
            {
                if (TextOtro.Text != " ")
                {
                    vTextOtro = TextOtro.Text.ToString();
                }
                else
                { vTextOtro = "0"; }
            }

            //Se ACTUALIZA la informacion de una empresa existente
            if ((bool)Session["banderaEmpresa"] == true)
            {
                //int idEmpresa = (int)Session["idEmpresaRegistrada"];
                int idEmpresa = int.Parse(valorIdEmpresa);

                if (TextNombreEmpresa.Text.Equals(" ") || TextNombreEmpresa.Text.Equals("")
                    || TextAreaDireccion.Text.Equals(" ") || TextAreaDireccion.Text.Equals("")
                    || TextTelefono.Text.Equals(" ") || TextTelefono.Text.Equals("")
                    || TextCorreoElectronico.Text.Equals(" ") || TextCorreoElectronico.Text.Equals("")
                    || TextGerente.Text.Equals(" ") || TextGerente.Text.Equals("")
                    || TextTecnico.Text.Equals(" ") || TextTecnico.Text.Equals(""))
                {
                    Response.Write("<script>alert('Debe llenar todos los campos obligatorios');</script>");
                    vNombreEmpresaError = true;
                }
                else
                {

                    if (vNombreEmpresaError || vDiasEntregaError || vOtroPerfilError)
                    {

                    }
                    else
                    {
                        vEmpresa = TextNombreEmpresa.Text.ToString();

                        cEMPRESABase empresaNueva = new cEMPRESABase();
                        empresaNueva.IdEmpresa = idEmpresa;
                        empresaNueva.Consecutivo = vConsecutivo;
                        empresaNueva.NombreEmpresa = vEmpresa;
                        empresaNueva.TelefonoOficina = vTelefono;
                        empresaNueva.TelefonoFax = vFax;
                        empresaNueva.CorreoElectronico = vCorreoElectronico;
                        empresaNueva.Direccion = vDireccion;
                        empresaNueva.NombreGerente = vGerente;
                        empresaNueva.NombreTecnico = vTecnico;
                        empresaNueva.PaginaWeb = vPaginaWeb;
                        empresaNueva.Actualizar();

                        //Se inserta la informacion de perfil de la empresa
                        cPERFILBase perfilNuevo = new cPERFILBase();
                        perfilNuevo.IdEmpresa = empresaNueva.IdEmpresa;
                        perfilNuevo.BodegasCentrales = vCheckBodegasCentrales;
                        perfilNuevo.CatalogoProductos = vCheckCatalogoProductos;
                        perfilNuevo.DistribuidorAutorizados = vCheckDistribuidoresAutorizados;
                        perfilNuevo.FuerzaVentas = vCheckFuerzaVentas;
                        perfilNuevo.InventarioDisponible = vCheckInventario;
                        perfilNuevo.DiasInventario = vTextDiasEntrega;
                        perfilNuevo.ProfesionalesInscritos = vCheckProfesionalesInscritos;
                        perfilNuevo.ImportadorDirecto = vCheckImportadorDirecto;
                        perfilNuevo.RepresentanteDirecto = vCheckRepresentanteDirecto;
                        perfilNuevo.ServiciosEspecificos = vCheckServiciosEspecificos;
                        perfilNuevo.SoloDistribuidor = vCheckSoloDistribuidor;
                        perfilNuevo.SubcontrataServicios = vCheckSubcontrataServicios;
                        perfilNuevo.Otro = vTextOtro;
                        perfilNuevo.Actualizar();

                        vOtroPerfilError = false;
                        vDiasEntregaError = false;
                        vNombreEmpresaError = false;
                    }
                }
            }
            else
            {
                if (TextNombreEmpresa.Text.Equals(" "))
                {
                    Response.Write("<script>alert('Debe llenar el campo de Empresa');</script>");
                    vNombreEmpresaError = true;
                }
                else
                {
                    vEmpresa = TextNombreEmpresa.Text.ToString();
                    //Se inserta los datos de la empresa
                    cEMPRESABase empresaNueva = new cEMPRESABase();

                    if (vNombreEmpresaError || vDiasEntregaError || vOtroPerfilError)
                    {

                    }
                    else
                    {
                        empresaNueva.Consecutivo = vConsecutivo;
                        empresaNueva.NombreEmpresa = vEmpresa;
                        empresaNueva.Direccion = vDireccion;
                        empresaNueva.TelefonoOficina = vTelefono;
                        empresaNueva.TelefonoFax = vFax;
                        empresaNueva.CorreoElectronico = vCorreoElectronico;
                        empresaNueva.PaginaWeb = vPaginaWeb;
                        empresaNueva.NombreGerente = vGerente;
                        empresaNueva.NombreTecnico = vTecnico;
                        empresaNueva.Insertar();

                        //Se inserta la informacion de perfil de la empresa
                        cPERFILBase perfilNuevo = new cPERFILBase();
                        perfilNuevo.IdEmpresa = empresaNueva.IdEmpresa;
                        perfilNuevo.BodegasCentrales = vCheckBodegasCentrales;
                        perfilNuevo.CatalogoProductos = vCheckCatalogoProductos;
                        perfilNuevo.DistribuidorAutorizados = vCheckDistribuidoresAutorizados;
                        perfilNuevo.FuerzaVentas = vCheckFuerzaVentas;
                        perfilNuevo.InventarioDisponible = vCheckInventario;
                        perfilNuevo.DiasInventario = vTextDiasEntrega;
                        perfilNuevo.ProfesionalesInscritos = vCheckProfesionalesInscritos;
                        perfilNuevo.ImportadorDirecto = vCheckImportadorDirecto;
                        perfilNuevo.RepresentanteDirecto = vCheckRepresentanteDirecto;
                        perfilNuevo.ServiciosEspecificos = vCheckServiciosEspecificos;
                        perfilNuevo.SoloDistribuidor = vCheckSoloDistribuidor;
                        perfilNuevo.SubcontrataServicios = vCheckSubcontrataServicios;
                        perfilNuevo.Otro = vTextOtro;
                        perfilNuevo.Insertar();

                        vOtroPerfilError = false;
                        vDiasEntregaError = false;
                        vNombreEmpresaError = false;

                        //Response.RedirectPermanent("formularioProyectos.aspx?idConsecutivo=" + valorIdConsecutivo + "&userName=" + valorUsuario);
                        Session["banderaEmpresa"] = true;                        
                    }
                }
            }
        }//Finaliza metodo actualizarGuardar

    }
}